﻿#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
#include <string>


//洗牌
//https://www.nowcoder.com/questionTerminal/5a0a2c7e431e4fbbbb1ff32ac6e8dfa0
//int main()
//{
//	int group = 0;
//	while (cin >> group)
//	{
//		while (group--)
//		{
//			int n = 0;
//			int k = 0;
//			while (cin >> n >> k)
//			{
//				vector<int> v;
//				for (int k = 0; k < 2 * n; ++k)
//				{
//					int num = 0;
//					cin >> num;
//					v.push_back(num);
//				}
//				int sz = v.size();
//				int mid = sz / 2;
//				for (int i = 0; i < k; ++i)
//				{
//					//0-mid mid-size()
//					int cur1 = 0;
//					int cur2 = mid;
//					vector<int> vv;
//					vv.reserve(sz);
//					while (cur1 < mid && cur2 < sz)
//					{
//						vv.push_back(v[cur1++]);
//						vv.push_back(v[cur2++]);
//					}
//					v = vv;
//				}
//				for (const auto& n : v)
//				{
//					cout << n << " ";
//				}
//				cout << endl;
//			}
//		}
//	}
//	return 0;
//}

//MP3光标位置
// https://www.nowcoder.com/questionTerminal/eaf5b886bd6645dd9cfb5406f3753e15
//int main() {
//    int music = 0;
//    while (cin >> music) {
//        string s;
//        vector<int> v;
//        v.reserve(music);
//        while (cin >> s) {
//            for (int i = 1; i <= music; ++i) {
//                v.push_back(i);
//            }
//            int left = 0; //记录下标
//            int right = 0;
//            int cur = 0;
//            if (v.size() < 4) {
//                right = v.size() - 1;
//            }
//            else {
//                right = 3; //0 - 3闭区间
//            }
//            for (const auto& c : s) {
//                if (c == 'U') { //向上
//                    if (cur == left) { //cur与上边界相等
//                        if (cur == 0) { //光标在最上面，向上则翻到最下面
//                            right = v.size() - 1;
//                            if (v.size() >= 4) {
//                                left = right - 3;
//                            }
//                            else {
//                                left = 0;
//                            }
//                            cur = right; //光标在最底下端
//                        }
//                        else { //光标非菜单的最开始，整体向上移动
//                            --cur;
//                            --left;
//                            --right;
//                        }
//                    }
//                    else { //光标在非边界上，直接--
//                        --cur;
//                    }
//                }
//                else if (c == 'D') { //向下
//                    if (cur == right) {
//                        if (cur == v.size() - 1) { //光标到达最底端
//                            left = 0;
//                            if (v.size() >= 4) {
//                                right = 3;
//                            }
//                            else {
//                                right = v.size() - 1;
//                            }
//                            cur = left;
//                        }
//                        else {
//                            ++cur;
//                            ++left;
//                            ++right;
//                        }
//                    }
//                    else {
//                        ++cur;
//                    }
//                }
//            }
//            for (left, right; left <= right; ++left) {
//                cout << v[left] << " ";
//            }
//            cout << endl;
//            cout << v[cur] << endl;
//        }
//    }
//}

